Skip to content

Update architecture docs for unified test provider#3313

Open
sebtiem wants to merge 5 commits intoapache:masterfrom
sebtiem:update-architecture-docs-for-unified-provider
Open

Update architecture docs for unified test provider#3313
sebtiem wants to merge 5 commits intoapache:masterfrom
sebtiem:update-architecture-docs-for-unified-provider

Conversation

@sebtiem
Copy link
Contributor

@sebtiem sebtiem commented Mar 9, 2026

@olamy Following this checklist to help us incorporate your
contribution quickly and easily:

  • Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean install to make sure basic checks pass. A more thorough check will
    be performed on your pull request automatically.
  • You have run the integration tests successfully (mvn -Prun-its clean install).

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

sebtiem added 5 commits March 9, 2026 20:24
Signed-off-by: Sebastian Tiemann <setie@mailbox.org>
…ormation

Signed-off-by: Sebastian Tiemann <setie@mailbox.org>
Signed-off-by: Sebastian Tiemann <setie@mailbox.org>
…tures to architecture.md

Signed-off-by: Sebastian Tiemann <setie@mailbox.org>
Signed-off-by: Sebastian Tiemann <setie@mailbox.org>
@olamy olamy self-assigned this Mar 10, 2026
@olamy olamy added the documentation Improvements or additions to documentation label Mar 10, 2026
@olamy olamy added this to the 3.6.0.M1 milestone Mar 10, 2026
@olamy olamy requested a review from sparsick March 11, 2026 07:49
Copy link
Member

@olamy olamy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

| **maven-failsafe-plugin** | Runs integration tests during `integration-test` / `verify` phases |
| **maven-surefire-report-plugin** | Generates HTML test reports from XML results |

Surefire supports JUnit 3, JUnit 4, JUnit 5 (Jupiter), TestNG, and plain POJO tests — each via a dedicated **provider** module. Tests execute in a **forked JVM** that communicates results back to Maven through a binary event stream protocol.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think with the change in 3.6.x we will not have dedicated provider module for each test framework.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct. not anymore true.

### Key relationships

- **Both plugins** (`surefire-plugin`, `failsafe-plugin`) share all logic via `maven-surefire-common`. The failsafe plugin adds pre/post-integration-test lifecycle binding and a different default report directory.
- **Providers are not compile dependencies** of the plugins. They are resolved at runtime by `SurefireDependencyResolver` and loaded in the forked JVM's classpath.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change providers (plural) to junit platform provider (single)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well regarding what we provide it's true.
But the provider architecture is still in place and users are still able to "provide" their own provider


| Provider | Module | Test framework | Key classes |
|----------|--------|---------------|-------------|
| **JUnit 3 + POJO** | `surefire-junit3` | JUnit 3.x, plain POJOs | `JUnit3Provider`, `PojoTestSetExecutor` |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not delete the table, but move it to subchapter 3.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants